//
//  PieChartView.m
//  iExpense
//
//  Created by JackyLiang on 09-7-16.
//  Copyright 2009 __MyCompanyName__. All rights reserved.
//

#import "PieChartView.h"

#define PI 3.14159265358979323846
static inline float radians(double degrees) { return degrees * PI / 180; }

@implementation PieChartView


- (id)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        // Initialization code
    }
    return self;
}


- (void)drawRect:(CGRect)rect {
    // Drawing code
	CGRect parentViewBounds = self.bounds;
	CGFloat x = CGRectGetWidth(parentViewBounds)/2;
	CGFloat y = CGRectGetHeight(parentViewBounds)*0.55;
	
    // Get the graphics context and clear it
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextClearRect(ctx, rect);
	
	// define stroke color
	CGContextSetRGBStrokeColor(ctx, 1, 1, 1, 1.0);
	
	// define line width
	CGContextSetLineWidth(ctx, 4.0);
	
	
	// need some values to draw pie charts
	
	double snapshotCapacity =20;
	double rawCapacity = 100;
	double systemCapacity = 1;
	
	int offset = 5;
	double pie1_start = 315.0;	
	double pie1_finish = snapshotCapacity *360.0/rawCapacity; 
	double system_finish = systemCapacity*360.0/rawCapacity;
	
    CGContextSetFillColor(ctx, CGColorGetComponents( [[UIColor greenColor] CGColor]));
    CGContextMoveToPoint(ctx, x+2*offset, y);     
    CGContextAddArc(ctx, x+2*offset, y, 100,  radians(pie1_start), radians(pie1_start+pie1_finish), 0); 
    CGContextClosePath(ctx); 
    CGContextFillPath(ctx); 
	
	// system capacity 
	CGContextSetFillColor(ctx, CGColorGetComponents( [[UIColor colorWithRed:15 green:165/255 blue:0 alpha:1 ] CGColor]));
	CGContextMoveToPoint(ctx, x+offset,y);     
    CGContextAddArc(ctx, x+offset, y, 100,  radians(pie1_start+pie1_finish+offset), radians(pie1_finish+pie1_finish+system_finish), 0); 
    CGContextClosePath(ctx); 
    CGContextFillPath(ctx); 
	
	/* data capacity */
	CGContextSetFillColor(ctx, CGColorGetComponents( [[UIColor colorWithRed:99/255 green:184/255 blue:255/255 alpha:1 ] CGColor]));
	CGContextMoveToPoint(ctx, x, y);     
    CGContextAddArc(ctx, x, y, 100,  radians(pie1_start+pie1_finish+system_finish+offset), radians(pie1_finish), 0); 
    CGContextClosePath(ctx); 
    CGContextFillPath(ctx);		
}


- (void)dealloc {
    [super dealloc];
}


@end
